package com.lpwa.system.mapper;

import com.lpwa.system.domain.AlarmQuickText;
import com.lpwa.system.domain.AlarmRuleConfig;
import com.lpwa.system.domain.TagAlarmData;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 标签报警历史 数据层
 * 
 * @author tanmu
 * @date 2019-06-22
 */
public interface TagAlarmDataMapper 
{
	/**
     * 查询标签报警历史信息
     * 
     * @param id 标签报警历史ID
     * @return 标签报警历史信息
     */
	public TagAlarmData selectTagAlarmDataById(Long id);
	
	/**
     * 查询标签报警历史列表
     * 
     * @param tagAlarmData 标签报警历史信息
     * @return 标签报警历史集合
     */
	public List<TagAlarmData> selectTagAlarmDataList(TagAlarmData tagAlarmData);
	
	/**
     * 新增标签报警历史
     * 
     * @param tagAlarmData 标签报警历史信息
     * @return 结果
     */
	public int insertTagAlarmData(TagAlarmData tagAlarmData);
	
	/**
     * 修改标签报警历史
     * 
     * @param tagAlarmData 标签报警历史信息
     * @return 结果
     */
	public int updateTagAlarmData(TagAlarmData tagAlarmData);
	
	/**
     * 删除标签报警历史
     * 
     * @param id 标签报警历史ID
     * @return 结果
     */
	public int deleteTagAlarmDataById(Long id);
	
	/**
     * 批量删除标签报警历史
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteTagAlarmDataByIds(String[] ids);

    public TagAlarmData selectLatestTagAlarmData(@Param("tagId") String tagId);
//统计未处理报警的数量
	public Integer selectCountTagAlarmDataByStatus(@Param("status") Integer status);

	/**
	 * 查询报警规则配置信息
	 *
	 * @param id 报警规则配置ID
	 * @return 报警规则配置信息
	 */
	public AlarmRuleConfig selectAlarmRuleConfigById(Long id);
	/**
	 * 修改报警规则配置
	 *
	 * @param alarmRuleConfig 报警规则配置信息
	 * @return 结果
	 */
	public int updateAlarmRuleConfig(AlarmRuleConfig alarmRuleConfig);
	/**
	 * 新增报警处理快捷文本
	 *
	 * @param alarmQuickText 报警处理快捷文本信息
	 * @return 结果
	 */
	public int insertAlarmQuickText(AlarmQuickText alarmQuickText);

	/**
	 * 删除报警处理快捷文本
	 *
	 * @param createBy 报警处理快捷文本ID
	 * @return 结果
	 */
	public int deleteAlarmQuickTextByCreateBy(String  createBy);
	/**
	 * 查询报警处理快捷文本列表
	 *
	 * @param alarmQuickText 报警处理快捷文本信息
	 * @return 报警处理快捷文本集合
	 */
	public List<AlarmQuickText> selectAlarmQuickTextList(AlarmQuickText alarmQuickText);
	/**
	 * 查询所有报警未处理的标签ID
	 *
	 * @return 标签ID集合
	 */
	public List<String> selectTagIdsIsAlarm();
}